package com.icss.train_sys_back.service.system_service;

import com.icss.train_sys_back.entity.ResponseResult;
import com.icss.train_sys_back.entity.home.OrderEntity;
import com.icss.train_sys_back.entity.home.PassengerEntity;
import com.icss.train_sys_back.entity.system_manage.UserEntity;

import java.time.LocalDate;
import java.util.List;

/**
 * @Author 小泽
 * @createTime 2025/9/16 14:18
 */
public interface UserService {
    //用户登录
    UserEntity login(UserEntity user);
    //条件查询所有用户
    List<UserEntity> getAllUser(String username, String name, Integer roleId, Integer status);
    //新增用户
    boolean addUser(UserEntity user);
    //修改用户信息
    boolean updateUser(UserEntity user);
    //根据id删除某位用户
    boolean deleteUser(Integer userId);
    //根据用户id修改状态
    boolean changeStatus(Integer userId, Integer status);

    //检查用户名是否存在
    boolean checkUserName(String username);

    //检查手机号是否存在
    boolean checkPhone(String phone);

    //检查邮箱号是否存在
    boolean checkEmail(String email);

    //用户注册
    Integer register(UserEntity user);

    //更新人脸注册状态
    void updateFaceRegisterStatus(Integer userId);
    //根据用户Id查询乘车人列表
    List<PassengerEntity> getPassengerListByUserId(Integer userId);

    UserEntity checkLogin(Integer userId);

    //根据车票Id  退票
    ResponseResult refundTicketBiTicketId(String ticketId, String orderId, Integer userId);

    //根据userId  查对应的自己的passenger身份
    PassengerEntity getPassengerByUserId(Integer userId);

    //人脸信息更改时验证密码
    ResponseResult verifyPwd(Integer userId, String password);

    //历史订单查询
    List<OrderEntity> getHistoryOrderList(Integer userId, LocalDate startTime, LocalDate endTime, String orderId);
}
